package com.zsc.oj.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zsc.oj.model.dto.friend.FriendApplyRequest;
import com.zsc.oj.model.dto.friend.SendMessageRequest;
import com.zsc.oj.model.entity.Friends;
import com.zsc.oj.model.entity.User;
import com.zsc.oj.model.vo.FriendsVO;
import com.zsc.oj.model.vo.MessageVO;


import java.util.List;
import java.util.Map;

/**
 *
 */
public interface FriendsService extends IService<Friends> {

    /**
     * 申请添加好友
     * @param friendApplyRequest
     * @param loginUser
     * @return
     */
    boolean applyAddUser(FriendApplyRequest friendApplyRequest, User loginUser);

    /**
     * 展示申请列表
     * @param loginUser
     * @return
     */
    List<FriendsVO> showFriendsApplyList(User loginUser);

    /**
     * 同意添加好友
     * @param fromId
     * @param loginUser
     * @return
     */
    boolean agreeApply(Long fromId, User loginUser);

    /**
     * 拒绝添加为好友
     * @param fromId
     * @param loginUser
     * @return
     */
    boolean disagreeApply(Long fromId, User loginUser);

    /**
     * 展示我发出的申请
     * @param loginUser
     * @return
     */
    List<FriendsVO> showMySendList(User loginUser);

    /**
     * 删除好友
     * @param id
     * @param loginUser
     * @return
     */
    boolean deleteFriend(Long id, User loginUser);

    /**
     * 发送消息
     * @param sendMessageRequest
     * @return
     */
    boolean sendMessage(SendMessageRequest sendMessageRequest);

    /**
     * 获取信息
     * @param id
     * @return
     */
    List<MessageVO> getMyMessage(Long id);
}
